var a = 1;
function foo() {
  //函数作用域内 a 已经声明，但未赋值 → undefined
  console.log(a);
  var a = 2;
  function bar() {
    console.log(a);
  }
  bar();
}

foo();
console.log(a);
// undefined 2 1
